package com.yanggu.scala.chapater12

import com.yanggu.scala.chapater12.caseclass.Item

//密封类
object SealedClassDemo {

  def main(args: Array[String]): Unit = {
    //如果想让case类的所有子类都必须在申明该类的相同的源文件中定义，可以将样例类的通用超类声明为sealed，这个超类称之为密封类。
    //密封就是不能在其他文件中定义子类。
  }

}
abstract sealed class Item666666 // 项

case class Book66666(description: String, price: Double) extends Item

//Bundle 捆 ， discount: Double 折扣 ， item: Item* , Item*表示可变参数
case class Bundle66666(description: String, discount: Double, item: Item*) extends Item

//给出案例表示有一捆数，单本漫画（40-10） + 文学作品(两本书)（80+30-20） = 30 + 90 = 120.0
//val sale = Bundle("书籍", 10,  Book("漫画", 40), Bundle("文学作品", 20, Book("《阳关》", 80), Book("《围城》", 30)))